package com.crb.oauth2.api.wechat.cp.bean;

import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

/**
 * Package: com.github.binarywang.demo.wx.cp.api.bean
 * Description： 获取异步任务结果
 * Author: huangjian
 * Date:  2020/8/18 10:34
 * Modified By:
 * @author huangjian
 */
@Data
@ToString
@EqualsAndHashCode
public class TaskResult implements Serializable {
    /**
     *返回码
     */
    @SerializedName("errcode")
    private String errcode;
    /**
     *对返回码的文本描述内容
     */
    @SerializedName("errmsg")
    private String errmsg;
    /**
     *任务状态，整型，1表示任务开始，2表示任务进行中，3表示任务已完成
     */
    @SerializedName("status")
    private Integer status;
    /**
     *操作类型，字节串，目前分别有：1. sync_user(增量更新成员) 2. replace_user(全量覆盖成员)3. replace_party(全量覆盖部门)
     */
    @SerializedName("type")
    private String type;
    /**
     *任务运行总条数
     */
    @SerializedName("total")
    private Long total;
    /**
     *目前运行百分比，当任务完成时为100
     */
    @SerializedName("percentage")
    private String percentage;
    /**
     *详细的处理结果，具体格式参考下面说明。当任务完成后此字段有效
     */
    @SerializedName("result")
    private List<Result> result;

    @Data
    @ToString
    @EqualsAndHashCode
    public static class Result {
        /**
         *对应操作的结果错误码
         */
        @SerializedName("errcode")
        private String errCode;
        /**
         *错误信息
         */
        @SerializedName("errmsg")
        private String errMsg;
        /**
         *成员UserID。对应管理端的帐号
         */
        @SerializedName("userid")
        private String userId;
        /**
         *操作类型（按位或）：1 新建部门 ，2 更改部门名称， 4 移动部门， 8 修改部门排序
         */
        @SerializedName("action")
        private Integer action;
        /**
         *部门ID
         */
        @SerializedName("partyid")
        private String partyId;
    }
}
